Skip to content

Add fanout pour net map props - #766

Merged
seveibar merged 3 commits into
mainfrom
agent/bus-plane-termination
Jul 30, 2026
Merged

Add fanout pour net map props#766
seveibar merged 3 commits into
mainfrom
agent/bus-plane-termination

Conversation

@seveibar

@seveibar seveibar commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add fanoutRoutingLayers to keep boundary-routed signal escapes off reserved plane layers
  • add fanoutPourNetMap to map a layer to one net or an array of isolated nets
  • keep <bus> focused on ordinary multi-connection bus grouping
  • regenerate the public props documentation

Why

Power and ground plane drops are properties of the board stackup and copper
intent, not special singleton buses. Core can infer the same map from
<copperpour> components when the prop is omitted.

<autoroutingphase
  autorouter="fanout"
  fanoutPourNetMap={{
    inner1: "GND",
    inner2: ["VCC_CORE", "VCC_IO"],
  }}
/>

Validation

  • bun test tests/bus.test.ts tests/autoroutingphase.test.ts — 16 passed
  • bun run typecheck
  • bun run build
  • bun run format

@seveibar seveibar changed the title Add bus fanout plane termination props Add fanout pour net map props Jul 30, 2026
@seveibar
seveibar marked this pull request as ready for review July 30, 2026 19:55
@seveibar
seveibar merged commit c40509a into main Jul 30, 2026
5 checks passed
@seveibar

Copy link
Copy Markdown
Contributor Author

CC @0hmX

Comment on lines +45 to +64
test("autorouting phase accepts fanout routing layers", () => {
const parsed = autoroutingPhaseProps.parse({
autorouter: "fanout",
fanoutRoutingLayers: ["top", { name: "inner3" }, "bottom"],
})

expect(parsed.fanoutRoutingLayers).toEqual(["top", "inner3", "bottom"])
})

test("autorouting phase accepts a fanout pour net map", () => {
const raw = {
autorouter: "fanout",
fanoutPourNetMap: {
inner1: "GND",
inner2: ["VCC_CORE", "VCC_IO"],
},
} satisfies AutoroutingPhaseProps

expect(autoroutingPhaseProps.parse(raw)).toEqual(raw)
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A *.test.ts file may have AT MOST one test(...). This file already had at least one test before these additions, and now two more test(...) calls are being added (lines 45 and 54), bringing the total well above one. Per the style guide, each test should be split into its own numbered file, e.g. autoroutingphase1.test.ts, autoroutingphase2.test.ts, autoroutingphase3.test.ts, etc.

Spotted by Graphite (based on custom rule: Custom rule)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant